-----------------------------------------------------------
INSTALLATION GUIDE
-----------------------------------------------------------

For any additional installation help, please go to http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/2602016-partial-modification-loader-


PML has an absolute prerequisite of Java 7 or above. Any such build will work. PML cannot be made to work with Java 6 and earlier.

These instructions are for PML for Minecraft (for developers).


IDEs
--------------------------------------------------------
  Eclipse is the suggested/recommended IDE for use with PML, but others can be used.
  Some IDEs (such as NetBeans) do not support PML execution, but can be used for coding.
  PML does not currently support code hotswapping, which makes it not support Eclipse debug running. Normal Eclipse runs are supported.
  
DISTRIBUTION
--------------------------------------------------------
  When you want to package your mod for distribution:
    1. Run whatever build command(s) you usually use
      a. For ForgeGradle, use the gradle build command
      b. For old MCP installs, use the build script
      c. If your mod does not reference Minecraft code directly (such as by only through PML's obfuscation handling code), you can use Eclipse's "Export" or an automated script such as with Ant
    2. Rename the resulting jar's extension from ".jar" to ".pmlm"
    3. Make sure your users know that PML is required to use your mod, as well as any non-standard obfuscation components that would be needed (the standard ones are for MCP/Forge development and/or use, and are now included in PML itself).

INSTALLATION
--------------------------------------------------------
  
  ForgeGradle Installation 
  --------------------------------------------------
    1. Prepare a copy of ForgeGradle
    2. Make a folder named "libs" directly in the ForgeGradle working directory (where you run the gradle/gradlew commands - which contains the "src" folder)
    3. Extract the contents of the PML dev. zip folder (next to this file in the PML dev download folder) directly into the "libs" folder you just made
    4. Add the following two lines to your gradle build script. These ensure that your mod uses the required Java 7 needed by PML. (If you already build to Java 7 or higher (by having something like this in your build script), then skip this step.)
          sourceCompatibility = JavaVersion.VERSION_1_7
          targetCompatibility = JavaVersion.VERSION_1_7
    5. Re-run the ForgeGradle set-up commands (or run them for the first time, if you haven't already)
	
	Whenever you run/re-run the ForgeGradle set-up commands (including the first time), do the following:
    1. Open the ForgeGradle development environment in Eclipse (or whatever IDE you use to develop)
    2. Open the run configurations ("Run" -> "Run Configurations...")
      a. Go to the Client run configuration's "Arguments" tab, and add the following to the VM arguments list
            -javaagent:..\libs\PMLPremain.jar=-MCSide:Client -Dpml.dev="t"
      b. Do the same with the Server run configuration, but substituting "Client" with "Server"
    Optional (PML's source code):
    3. Extract the zip of PML source jars (if you haven't already)
    4. Attach whichever source jars you want/need to the corresponding source jars through your IDE
      a. You don't need to see PML's source to be able to develop with it. PML's source code and documentation can easily help in development, however.
      b. I suggest attaching the PMLCore and MinecraftApp jars' sources at minimum, since developing a PML mod for Minecraft will deal near exclusively with these two jars. Some mods may make more use of the Premain or WPUtil jars on occasion; the Loader, Agent, and PreAgent jars aren't used for normal PML-mod code development (only code testing/running).


  Other Installations
  --------------------------------------------------
  Other installations (without ForgeGradle) are supported. Forge is not a requirement nor dependency of PML.
    1. Add the files in the dev zip to the classpath (the folder you extracted the files to will be referred to as "<pml dev extraction folder>" - it can be absolute or relative)
    2. If you plan to do test runs with PML, add the following to the Client run's jvm arguments
            -javaagent:<pml dev extraction folder>\PMLPremain.jar=-MCSide:Client -Dpml.dev="t"
      a. Do the same with the Server run configuration, but substituting out "Client" with "Server"
      b. If you don't have a client or server side, ignore the instruction to modify that side's run configuration (such as with client for Bukkit/CraftBukkit)
